进程、线程、程序的概念与区别

您所在的位置:网站首页 操作系统 线程和进程 进程、线程、程序的概念与区别

进程、线程、程序的概念与区别

2024-06-06 01:21| 来源: 网络整理| 查看: 265

一、程序、进程、线程的概念:

1.程序:是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标计算机体系结构上。

2.进程:是计算机中的软件程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是系统分配资源和调度的基本单位,也就是说进程可以单独运行一段程序。

3.线程:是进程中的一个实体,是被系统独立调度和分派的基本单位,是CPU调度和分派的最小基本单位,线程自己不拥有操作系统资源,但是该线程可与同属进程的其他线程共享该进程所拥有的全部资源。

4.进程是程序的实体,而线程又是进程的实体。进程又是线程的容器。

二、程序、进程、线程三者区别如下:

1.程序:程序并不能单独执行,是静止的,只有将程序加载到内存中,系统为其分配资源后才能够执行。

2.进程:程序对一个数据集的动态执行过程,一个进程包含一个或者更多的线程,一个线程同时只能被一个进程所拥有,进程是分配资源的基本单位。进程拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。

3.线程:线程是进程内的基本调度单位,线程的划分尺度小于进程,并发性更高,线程本身不拥有系统资源,但是该线程可与同属进其他线程共享该进程所拥有的全部资源。每一个独立的线程,都有一个程序运行的入口、顺序执行序列和程序的出口。

4.进程、线程区别

1.一个进程可以包含至少一个线程,一般来说也就是主线程,而一个线程只能属于一个进程; 2.进程拥有独立的内存,而线程没有独立的资源空间, 只是暂时存储在计数器,寄存器,栈中,同一个进程间的线程可以共享资源。 3.将代码放入到代码区之后,进程产生,但还没执行,我们所说的执行一般是是主线程main函数开始执行。 4.进程比线程更加消耗资源 5.进程对资源的保护要求高,而线程要求不高 6.进程是处理器这一层面的抽象,而线程是进程的基础上进一步并发的抽象 7.同一个进程下,一个线程的挂掉,会导致整个进程的挂掉,而进程之间不会相互影响 8.总的来说:我们都知道程序不能单独运行,只有将它放入内存中,分配资源才能运行,程序是指令的集合,而进程是程序的一次执行活动,属于动态概念 9.我们可以打个比方:进程相当于某一个大型项目,世界上可能有人同时在做这个项目,有其独特的方式;而线程就相当于这个项目下的一些程序员,多个程序员去完成这一个项目肯定要比一个人完成快的多,也就是能在同一时间操作。

5.每个应用程序都使用一块内存区域,这个内存区域可以称为一个进程,内存区域中是需要执行代码的,具体执行代码就是线程去执行的。 注意:进程只是负责开辟内存空间的,线程才是负责执行代码逻辑的执行单元。

三、多进程、多线程的区别如下:

1.多进程:每个进程互相独立,不影响主程序的稳定性,某个子进程崩溃对其他进程没有影响,通过增加CPU可以扩充软件的性能,可以减少线程加锁/解锁的影响,极大提高性能。缺点是多进程逻辑控制复杂,需要和主程序交互,需要跨进程边界,进程之间上下文切换比线程之间上下文切换代价大。

2.多线程:无需跨进程,程序逻辑和控制方式简单,所有线程共享该进程的内存和变量等。缺点是每个线程与主程序共用地址空间,线程之间的同步和加锁控制比较麻烦,一个线程的崩溃会影响到整个进程或者程序的稳定性。

四、互斥锁、信号量

1.互斥锁:同一个进程下,当某个线程使用进程的共享资源时,其他线程必须等待该线程结束 2.信号量:进程拥有同一时间最大访问数量

五、单线程和多线程

线程:是进程中的一个执行控制单元,执行路径。 一个进程中至少有一个线程在负责控制程序的执行。 一个进程中如果只有一个执行路径,这个程序称为单线程程序。 一个进程中如果有多个执行路径时,这个程序就称为多线程程序。

单线程和多线程有什么区别呢?  举一个火车站卖票的例子。  一个窗口卖票的时候效率就太低了,如果同时有上百个窗口卖票,这个时候效率就高了。 多线程最明显的效率就是提高执行效率。 多线程的出现可以有多条执行路径,让多部分代码可以同时执行,来提高效率。

参考地址:

https://www.csdn.net/tags/OtDaUgwsNzg5NzEtYmxvZwO0O0OO0O0O.html https://www.yisu.com/zixun/246171.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3